﻿#include <iostream>
#include <sstream>
#include "InstId2CodeMap.h"

using namespace std;

InstId2CodeMap *InstId2CodeMap::GetInstance() {
	static InstId2CodeMap instance;	//局部静态变量法
	return &instance;
}
//
//unordered_map<string, string> * InstId2CodeMap::GetHash() {
//	return  &_hash;
//}
//
//bool InstId2CodeMap::Add(const string key, const string value) {
//	//pair<unordered_map<string, string>::iterator, bool> ret = _hash.emplace(make_pair(key, value));
//	unique_lock<mutex> lock(_mu);
//	auto ret = _hash.emplace(make_pair(key, value));
//	return ret.second;
//}
//
//void InstId2CodeMap::Delete(const string key) {
//	unique_lock<mutex> lock(_mu);
//	_hash.erase(key);
//}
//
//bool InstId2CodeMap::Update(const string key, const string value) {
//	unique_lock<mutex> lock(_mu);
//	auto it = _hash.find(key);
//	if (it != _hash.end()) {
//		it->second = value;
//		return true;
//	}
//	else {
//		return false;
//	}
//}
//
//string InstId2CodeMap::ToString() {
//	unique_lock<mutex> lock(_mu);
//	ostringstream oss;
//	oss << "dump InstId2CodeMap: ";
//	for(auto it : _hash) {
//		oss << "{" << it.first << ", " << it.second << "}, ";
//	}
//	oss << endl;
//	return oss.str();
//}
//
//void InstId2CodeMap::Clear() {
//	unique_lock<mutex> lock(_mu);
//	_hash.clear();
//}
//
//int InstId2CodeMap::GetCount() {
//	unique_lock<mutex> lock(_mu);
//	return (int)_hash.size();
//}
//
//string InstId2CodeMap::Find(string key) {
//	unique_lock<mutex> lock(_mu);
//	auto ret = _hash.find(key);
//	if (ret == _hash.end()) {
//		return "";
//	}
//	return ret->second;
//}